package com.sse.util;

import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.SignatureException;

public interface ISecurity {

	/**
	 * Obtiene la llave privada para realizar la firma de una trama
	 * @param cas_id: identificador de la casa
	 * @return
	 * @throws NoSuchAlgorithmException
	 * @throws NoSuchProviderException
	 * @throws InvalidKeyException
	 * @throws SignatureException
	 */
	public byte[] getPrivateKey(int cas_id);

	public byte[] getPublicKey(int cas_id);

	public byte[] signData(byte[] data, byte[] prvEncKey);

	/**
	 * Verifica que una dato corresponda a la firma y la llave publica
	 * @param sigToVerify: firma digital
	 * @param data: trama de datos
	 * @param pubEncKey: llave publica de la casa
	 * @return
	 */
	public boolean verifySign(byte[] sigToVerify, byte[] data, byte[] pubEncKey);

}
